package com.bitcat.base.net

import kotlinx.coroutines.CoroutineScope

enum class LoadingType {
    //请求时不需要Loading
    LOADING_NULL,
    //请求时弹出 通用Dialog弹窗Loading
    LOADING_DIALOG,
    //请求时 界面 Loading Error Empty
    LOADING_XML,
    //请求时弹出 Loading-自定义 在 fragment/activity 使用时需要重写 showCustomLoading dismissCustomLoading 方法
    LOADING_CUSTOM
}

//请求中
data class LoadingDialogEntity(
    var loadingType: LoadingType = LoadingType.LOADING_NULL,
    var loadingMessage: String = "请求网络中...",
    var isShow: Boolean = false,
//    var requestCode: String = "mmp",
    var coroutineScope: CoroutineScope? = null //请求绑定的作用域
)

//请求成功、失败、空数据
data class LoadStatusEntity(
    var requestCode: String,//请求码  //login  register
    var throwable: Throwable,//失败异常
    var errorCode:Int,//错误码
    var errorMessage: String,//错误消息
    var isRefresh: Boolean = false,//是否是列表切刷新请求 - 与分页功能配套使用
    var loadingType: LoadingType = LoadingType.LOADING_NULL,// 请求时 loading 类型
    var intentData: Any? = null //请求时回调回来-->发起请求时携带的参数 示例场景：发起请求时传递一个position ,如果请求失败时，可能需要把这个position回调给 activity/fragment 根据position做错误处理
)